package com.mrjy.video.dao;

import java.util.List;

import com.mrjy.common.entity.CustomModule;
import com.mrjy.common.entity.TeacherInfo;
import org.apache.ibatis.annotations.Param;

import com.mrjy.common.entity.VideoInfo;

public interface IVideoInfoDao extends IVideoDao{
	List<Object> queryVideoList(Object object);
	
	int countVideoList(Object object);
	
	Object queryVideoByUserMember(@Param("videoId") Integer videoId, @Param("userId") Integer userId);
	
	List<VideoInfo> queryVideoListByFlag(VideoInfo videoInfo);
	
	int countVideoListByFlag(VideoInfo videoInfo);

	List<VideoInfo> queryVideoPageDesc(VideoInfo videoInfo);

	List<VideoInfo> queryVideoPageByLableName(VideoInfo videoInfo);

	Object countVideoPageByLableName(VideoInfo videoInfo);

	VideoInfo queryVideoInfoById(VideoInfo videoInfo);
	/**
	 * 通过老师id分页查询视频list
	 * @param teacherId
	 * @param page
	 * @param row
	 * @return
	 */
	public List<VideoInfo> getVideoListByTeacherId(VideoInfo info);
	/**
	 * 通过老师id查询其微课数和视频总播放数
	 * @param userId
	 * @return
	 */
	public VideoInfo getCountAndPlayTimesByTeacherId(Integer userId);

	List<VideoInfo> getPageVideoByVideoName(VideoInfo info);

	int countVideoByVideoName(VideoInfo info);

	public int queryVideoCountByLableName(VideoInfo info);

	public int addPlayTimes(Integer vid);

	List<VideoInfo> queryPageByPlayTimes(VideoInfo info);

	int countVideoPageDesc(VideoInfo info);

	List<VideoInfo> queryPageByFree(VideoInfo info);

	List<VideoInfo> selectPageForBackCoursePackage(VideoInfo info);
	
	List<VideoInfo> queryList(VideoInfo info);

	int addClickCount(Integer vid);

	int updateFinishStatus(VideoInfo info);
	
	//用户未完整观看的微课数
	int queryNotSeen(VideoInfo videoInfo);

    List<VideoInfo> relatedQuestions(VideoInfo info);
    
    int queryTotalVideo();
    
    List<VideoInfo> queryRecordInfo();
    
    List<VideoInfo> queryListForImportSolr(VideoInfo info);

    List<VideoInfo> queryListForYourFavor(VideoInfo info);

    List<VideoInfo> queryListForMultiVideoType(CustomModule info);

    int countListForMultiVideoType(CustomModule videoInfo);

    List<VideoInfo> queryTeacherWithCourse(VideoInfo info);

    int countTeacherWithCourse(VideoInfo teacherInfo);

    List<VideoInfo> queryVideoPageDescByUserId(VideoInfo videoInfo);

    int countVideoPageDescByUserId(VideoInfo videoInfo);

    int countListForYourFavor(VideoInfo videoInfo);
    
    int checkVideoIsSpecial(VideoInfo videoInfo);

	int updateVideoFreeFlag(VideoInfo videoInfo);

}
